<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    
    <title>jouyouyun&#39;s blog</title>
    <meta name="viewport" content="width=device-width,minimum-scale=1">
    <meta name="description" content="jouyouyun&#39;s blog.">
    <meta name="generator" content="Hugo 0.105.0">
    
    
    
    
      <meta name="robots" content="noindex, nofollow">
    

    
<link rel="stylesheet" href="/ananke/css/main.min.css" >



    
    
    
      

    

    
    
      <link href="/post/index.xml" rel="alternate" type="application/rss+xml" title="jouyouyun&#39;s blog" />
      <link href="/post/index.xml" rel="feed" type="application/rss+xml" title="jouyouyun&#39;s blog" />
      
    
    
    <meta property="og:title" content="Posts" />
<meta property="og:description" content="jouyouyun&#39;s blog." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jouyouyun.github.io/post/" />

<meta itemprop="name" content="Posts">
<meta itemprop="description" content="jouyouyun&#39;s blog."><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Posts"/>
<meta name="twitter:description" content="jouyouyun&#39;s blog."/>

	
  </head>

  <body class="ma0 avenir bg-near-white">

    

  <header>
    <div class="pb3-m pb6-l bg-black">
      <nav class="pv3 ph3 ph4-ns" role="navigation">
  <div class="flex-l justify-between items-center center">
    <a href="/" class="f3 fw2 hover-white no-underline white-90 dib">
      
        jouyouyun&#39;s blog
      
    </a>
    <div class="flex-l items-center">
      

      
        <ul class="pl0 mr3">
          
          <li class="list f5 f4-ns fw4 dib pr3">
            <a class="hover-white no-underline white-90" href="/post/" title="Archives 页">
              Archives
            </a>
          </li>
          
          <li class="list f5 f4-ns fw4 dib pr3">
            <a class="hover-white no-underline white-90" href="/tags/" title="Tags 页">
              Tags
            </a>
          </li>
          
          <li class="list f5 f4-ns fw4 dib pr3">
            <a class="hover-white no-underline white-90" href="/categories/" title="Categories 页">
              Categories
            </a>
          </li>
          
        </ul>
      
      
<div class="ananke-socials">
  
    <a href="https://github.com/jouyouyun" target="_blank" class="github ananke-social-link link-transition stackoverflow link dib z-999 pt3 pt0-l mr1" title="GitHub link" rel="noopener" aria-label="follow on GitHub——Opens in a new window">
      
        <span class="icon"><svg style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512"  xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
  <path d="M256,32C132.3,32,32,134.8,32,261.7c0,101.5,64.2,187.5,153.2,217.9c11.2,2.1,15.3-5,15.3-11.1   c0-5.5-0.2-19.9-0.3-39.1c-62.3,13.9-75.5-30.8-75.5-30.8c-10.2-26.5-24.9-33.6-24.9-33.6c-20.3-14.3,1.5-14,1.5-14   c22.5,1.6,34.3,23.7,34.3,23.7c20,35.1,52.4,25,65.2,19.1c2-14.8,7.8-25,14.2-30.7c-49.7-5.8-102-25.5-102-113.5   c0-25.1,8.7-45.6,23-61.6c-2.3-5.8-10-29.2,2.2-60.8c0,0,18.8-6.2,61.6,23.5c17.9-5.1,37-7.6,56.1-7.7c19,0.1,38.2,2.6,56.1,7.7   c42.8-29.7,61.5-23.5,61.5-23.5c12.2,31.6,4.5,55,2.2,60.8c14.3,16.1,23,36.6,23,61.6c0,88.2-52.4,107.6-102.3,113.3   c8,7.1,15.2,21.1,15.2,42.5c0,30.7-0.3,55.5-0.3,63c0,6.1,4,13.3,15.4,11C415.9,449.1,480,363.1,480,261.7   C480,134.8,379.7,32,256,32z"/>
</svg>
</span>
      
<span class="new-window"><svg  height="8px"  style="enable-background:new 0 0 1000 1000;" version="1.1" viewBox="0 0 1000 1000"  xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<path d="M598 128h298v298h-86v-152l-418 418-60-60 418-418h-152v-86zM810 810v-298h86v298c0 46-40 86-86 86h-596c-48 0-86-40-86-86v-596c0-46 38-86 86-86h298v86h-298v596h596z" style="fill-rule:evenodd;clip-rule:evenodd;"/>
</svg>
</span></a>
  
</div>

    </div>
  </div>
</nav>

      <div class="tc-l pv3 ph3 ph4-ns">
        <h1 class="f2 f-subheadline-l fw2 light-silver mb0 lh-title">
          Posts
        </h1>
        
      </div>
    </div>
  </header>


    <main class="pb7" role="main">
      

  <article class="pa3 pa4-ns nested-copy-line-height">
    <section class="cf ph3 ph5-l pv3 pv4-l f4 tc-l center measure-wide lh-copy mid-gray">
      
    </section>
    <aside class="flex-ns flex-wrap justify-around mt5">
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        二月 7, 2023
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/trenchboot_intro/" class="link black dim">
        TrenchBoot Intro
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      <p>TrenchBoot 是一个框架，用于让设备管理者选择适合其目标机器环境的安全引擎。目的是为了提升运行环境中固件及软件的安全性，通过测量启动环境来实现，如 DRTM 技术。</p>
<p>TrenchBoot 框架将启动流程分为三个阶段，分别是：</p>
<ul>
<li>
<p>引导阶段(Bootstrap)</p>
<p>Bootstrap 阶段主要是对现已存在的引导技术，包括 UEFI、grub、shim 等，添加完整性功能。这是 TrenchBoot 的主要关注点，称之为 BIT(Boot Integrity Technology) 。</p>
</li>
<li>
<p>中间阶段(Intermediate)</p>
<p>Intermediate 阶段是 TrenchBoot 抽象出的，用来执行 TrenchBoot Loader ，以此实现系统启动的完整性。</p>
<p>TrenchBoot Loader 阶段将执行 TrenchBoot 安全引擎，通过 Dynamic Launch CPU 指令进入安全运行环境，然后对前一段阶段收集的 evidence 进行测试，并构建 DRTM(Dynamic Root of Trusted for Measurement) 。</p>
</li>
<li>
<p>运行阶段(Runtime)</p>
<p>Runtime 阶段根据测量结果和安全策略决定如何启动目标及赋予权限，目标包括管理程序、操作系统等。</p>
</li>
</ul>
    </div>
  </div>

        </div>
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        四月 25, 2021
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/audit-usage/" class="link black dim">
        audit 简单使用
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      <p><code>audit</code> 是 <code>linux</code> 下的审计系统，包含内核模块和系统服务。可使用 <code>audit</code> 对文件变更、系统调用、任务创建、用户事件等进行审计。</p>
<p>可使用 <code>sudo auditctl -s</code> 获取内核审计模块的状态，可使用 <code>sudo systemctl status auditd</code> 获取审计服务的状态。在添加规则之前，需要确保审计内核模块和审计服务正常。</p>
    </div>
  </div>

        </div>
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        三月 15, 2020
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/dde-daemon-tutorial/" class="link black dim">
        DDE 后端 Tutorial
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      dde 后端使用 go 作为主要的开发语言，使用 dbus 提供接口，主要使用 gsettings 来保存配置。所以在进行后端开发前需要对以上内容有基本的了解，这里假定本文档的阅读者熟悉 dbus 和 gsettings ，并有一定的开发经验。
这里就只对 go 进行简单的介绍。
go go 是一种类 c 的语言，但没有了 c 中令人头疼的指针和内存管理问题，极大的提高了开发效率。 go 中使用 package 来封装同一功能的模块，首字母大写的变量和函数是可以被其它 package 使用的。
学习 go 至少需要了解以下内容。
编码风格 go 提供了 gofmt 工具来对代码进行格式化，以使用统一的代码风格。因此在代码保存之前需要使用 gofmt 先进行格式化。
保存前格式化这种操作，一般可在编辑器中配置，如 vim , emacs 等，根据个人习惯选择编辑器。
变量 go 支持使用时声明和使用 var 声明两种方式，如下：
使用 var 声明 // 主动声明 var ( outData []byte err error ) outData, err = os.Exec(&#34;ls&#34;).Output() 使用时声明 // 使用时声明 outData, err := os.
    </div>
  </div>

        </div>
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        十一月 28, 2019
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/learning_exercise/" class="link black dim">
        Learning Exercise
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      学习一种新语言，或者学习内核，可按照以下内容做题练习。
类型转换 number(int,float) to string string to number 大数相加(数的值接近类型最大值,相加后超过最大值) 字符串操作 split append string list join replace lowercase uppercase 常见数据结构 栈 创建及使用 链表 创建及使用 反序 环检查 两个链表是否相交 队列 创建及使用 字典 创建及使用 文件操作 文件读写 文件内容查找 获取整个文件内容(需要考虑大文件) 常用配置解析 json 读写 yaml 读写 ini 读写 时间 时间获取 时间戳获取及转换 定时器使用 自旋锁 会一直自旋直到获取到锁，期间不会陷入 sleep
互斥锁 获取不到锁时会陷入 sleep
多进程 进程创建 进程同步 进程间共享 多线程 线程创建 线程间交互 线程同步 
    </div>
  </div>

        </div>
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        十月 25, 2019
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/touchscreen-calibration/" class="link black dim">
        触摸屏校正
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      <p>有些设备的触摸屏不准，需要校正后才能正常使用。校正实际上就是配置设备在 <code>Xorg</code> 中的属性，具体属性名与驱动相关，后文描述。</p>
<p>下面开始介绍校正方法：</p>
<h2 id="准备">准备</h2>
<p>安装需要用到的工具：</p>
    </div>
  </div>

        </div>
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        八月 28, 2019
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/debian-cve-tracker/" class="link black dim">
        Debian CVE Tracker
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      <p><a href="https://security-tracker.debian.org/tracker/status/release/stable">Debian CVE Tracker</a> 上记录了很多安全漏洞，有些 <code>Debian</code> 会在当前版本修复，但有些不会。由于 <code>deepin</code> 会在当前版本上停留很久，所以需要修复这些安全漏洞。这就需要自行追踪 <code>CVE Bug</code> 的状态和添加 <code>patch</code> ，因此写了个程序 <a href="https://github.com/deepin-cve/tracker">deepin-cve-tracker</a> 来管理。</p>
<p>本文将介绍 <code>deepin-cve-tracker</code> 的使用方法和 <code>patch</code> 的添加方法。</p>
<h2 id="deepin-cve-tracker">Deepin CVE Tracker</h2>
<p><code>deepin-cve-tracker</code> 设计用来追踪 <code>Debain CVE Bug</code> ，会先将 <code>Debian</code> 中的数据爬入自己的数据库中，然后做标记来追踪 <code>bug</code> 的处理状态。提供 <code>HTTP</code> 接口供用户使用，使用 <code>docker</code> 部署。</p>
    </div>
  </div>

        </div>
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        八月 6, 2019
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/linux-kernel-compile/" class="link black dim">
        Compile Kernel
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      <p>最近由于要调试 <code>usbhid</code> 模块，所以需要编译 <code>kernel</code> ，在此整理下方法，以免每次都查找。</p>
<h2 id="dependencies">Dependencies</h2>
<ul>
<li>
<p><code>deepin</code></p>
<p><code>sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev</code></p>
</li>
<li>
<p><code>archlinux</code></p>
<p><code>sudo pacman -S gcc ncurses bison flex openssl libelf elfutils</code></p>
</li>
</ul>
<p>若编译时有报错，请按照错误提示按照缺失的依赖。</p>
    </div>
  </div>

        </div>
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        八月 3, 2019
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/gsettings/" class="link black dim">
        GSettings
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      <p><code>GSettings</code> 实际上是一套可使用多个 <code>storage backends</code> 的 <code>API</code> ，默认使用 <code>dconf</code> 作为 <code>backend</code> ，也可以使用 <code>keyfile</code> 作为 <code>backend</code> 。但由于 <code>gio</code> 提供了 <code>GKeyFile</code> 结构来处理 <code>keyfile</code> 文件，所以解析 <code>keyfile</code> 文件时很少通过 <code>GSettings API</code> ，在这里只介绍使用 <code>dconf</code> 作为 <code>backend</code> 的使用方法。</p>
    </div>
  </div>

        </div>
      
        <div class="relative w-100 w-30-l mb4 bg-white">
            <div class="mb3 pa4 mid-gray overflow-hidden">
    
      <div class="f6">
        五月 8, 2019
      </div>
    
    <h1 class="f3 near-black">
      <a href="/post/linux_hardware_info/" class="link black dim">
        Linux 硬件信息获取
      </a>
    </h1>
    <div class="nested-links f5 lh-copy nested-copy-line-height">
      <p>在 <code>linux</code> 上可以通过 <code>dmidecode</code> 或是 <code>lshw</code> 来获取硬件信息，能够方便的查看系统配置。但它们的输出信息过多，解析起来有些麻烦，另外 <code>lshw</code> 对 <code>usb</code> 接口的网卡支持不好，显示的信息不够，所以在此整理下通过读文件或是一些简单命令来获取硬件信息的方法。</p>
<h3 id="dmi"><strong>DMI</strong></h3>
<p>一般情况下内核默认加载了 <code>dmi sysfs</code> ，路径是 <code>/sys/class/dmi</code> 。里面包含了 <code>bios</code> ， <code>board</code> ， <code>product</code> 等信息。</p>
    </div>
  </div>

        </div>
      
    </aside>
    
    <ul class="pagination pagination-default">
      <li class="page-item disabled">
        <a aria-disabled="true" aria-label="First" class="page-link" role="button" tabindex="-1"><span aria-hidden="true">&laquo;&laquo;</span></a>
      </li>
      <li class="page-item disabled">
        <a aria-disabled="true" aria-label="Previous" class="page-link" role="button" tabindex="-1"><span aria-hidden="true">&laquo;</span></a>
      </li>
      <li class="page-item active">
        <a aria-current="page" aria-label="Page 1" class="page-link" role="button">1</a>
      </li>
      <li class="page-item">
        <a href="/post/page/2/" aria-label="Page 2" class="page-link" role="button">2</a>
      </li>
      <li class="page-item">
        <a href="/post/page/3/" aria-label="Page 3" class="page-link" role="button">3</a>
      </li>
      <li class="page-item">
        <a href="/post/page/4/" aria-label="Page 4" class="page-link" role="button">4</a>
      </li>
      <li class="page-item">
        <a href="/post/page/5/" aria-label="Page 5" class="page-link" role="button">5</a>
      </li>
      <li class="page-item">
        <a href="/post/page/2/" aria-label="Next" class="page-link" role="button"><span aria-hidden="true">&raquo;</span></a>
      </li>
      <li class="page-item">
        <a href="/post/page/6/" aria-label="Last" class="page-link" role="button"><span aria-hidden="true">&raquo;&raquo;</span></a>
      </li>
    </ul>
  </article>

    </main>
    <footer class="bg-black bottom-0 w-100 pa3" role="contentinfo">
  <div class="flex justify-between">
  <a class="f4 fw4 hover-white no-underline white-70 dn dib-ns pv2 ph3" href="https://jouyouyun.github.io" >
    &copy;  jouyouyun 2023 
  </a>
    <div>
<div class="ananke-socials">
  
    <a href="https://github.com/jouyouyun" target="_blank" class="github ananke-social-link link-transition stackoverflow link dib z-999 pt3 pt0-l mr1" title="GitHub link" rel="noopener" aria-label="follow on GitHub——Opens in a new window">
      
        <span class="icon"><svg style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512"  xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
  <path d="M256,32C132.3,32,32,134.8,32,261.7c0,101.5,64.2,187.5,153.2,217.9c11.2,2.1,15.3-5,15.3-11.1   c0-5.5-0.2-19.9-0.3-39.1c-62.3,13.9-75.5-30.8-75.5-30.8c-10.2-26.5-24.9-33.6-24.9-33.6c-20.3-14.3,1.5-14,1.5-14   c22.5,1.6,34.3,23.7,34.3,23.7c20,35.1,52.4,25,65.2,19.1c2-14.8,7.8-25,14.2-30.7c-49.7-5.8-102-25.5-102-113.5   c0-25.1,8.7-45.6,23-61.6c-2.3-5.8-10-29.2,2.2-60.8c0,0,18.8-6.2,61.6,23.5c17.9-5.1,37-7.6,56.1-7.7c19,0.1,38.2,2.6,56.1,7.7   c42.8-29.7,61.5-23.5,61.5-23.5c12.2,31.6,4.5,55,2.2,60.8c14.3,16.1,23,36.6,23,61.6c0,88.2-52.4,107.6-102.3,113.3   c8,7.1,15.2,21.1,15.2,42.5c0,30.7-0.3,55.5-0.3,63c0,6.1,4,13.3,15.4,11C415.9,449.1,480,363.1,480,261.7   C480,134.8,379.7,32,256,32z"/>
</svg>
</span>
      
<span class="new-window"><svg  height="8px"  style="enable-background:new 0 0 1000 1000;" version="1.1" viewBox="0 0 1000 1000"  xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<path d="M598 128h298v298h-86v-152l-418 418-60-60 418-418h-152v-86zM810 810v-298h86v298c0 46-40 86-86 86h-596c-48 0-86-40-86-86v-596c0-46 38-86 86-86h298v86h-298v596h596z" style="fill-rule:evenodd;clip-rule:evenodd;"/>
</svg>
</span></a>
  
</div>
</div>
  </div>
</footer>

  </body>
</html>
